package com.sumainfor.common.utlis;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;

import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


public class JsonFromObject {

    /**
     * 传递一个字符串json对象转换成map
     * {\"name\":\"张三\",\"age\":23}
     *
     * @Description: TODO(这里用一句话描述这个方法的作用)
     * @author zhlu
     * @date 2018年9月29日
     */
    public static Map<String, Object> FromObjMap(String map) {
        JSONObject jsonObject = JSONObject.parseObject(map);
        Map<String, Object> result = jsonObject;
        return result;
    }

    /**
     * 传递一个字符串json数组转换成List<Map<String,Object>>
     * [{\"name\":\"张三\",\"age\":1},{\"name\":\"李四\",\"age\":24}]
     *
     * @Description: TODO(这里用一句话描述这个方法的作用)
     * @author zhlu
     * @date 2018年9月29日
     */
    public static List<Map<String, Object>> FromList(String list) {
        JSONArray jsonArray = JSONArray.parseArray(list);
        Type type = new TypeReference<Map<String, Object>>() {
        }.getType();
        List<Map<String, Object>> maps = jsonArray.toJavaObject(type);
        return maps;
    }

    /**
     * 传递一个字符串json数组转换成List<Map<String,Object>>
     * {\"list\": [{\"name\":\"张三\",\"age\":1},{\"name\":\"李四\",\"age\":24}] }
     *
     * @Description: TODO(这里用一句话描述这个方法的作用)
     * @author zhlu
     * @date 2018年9月29日
     */
    public static List<Map<String, Object>> FromListName(String list) {
        List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();
        Map<String, Object> map = new HashMap<String, Object>();
        //先转换为json数组
        JSONObject jsonObject1 = JSONObject.parseObject(list);
        //然后取出来list对应的数组
        JSONArray jsonArray1 = (JSONArray) jsonObject1.get("list");
        //放到map里面
        map.put("list", jsonArray1);
        result.add(map);
        return result;
    }
}
